#ifndef PEER_H
#define	PEER_H

#include <vector>
#include <boost/thread/xtime.hpp>

class Peer
{    
public:
    Peer(double t, unsigned int b, unsigned int r)
			: isSeed(false), ocupado(false), taxaUpload(t), blocos(b), rodada(r)  
	{ 
		blocosRecebidos = new bool[blocos];		
		for (int i=0; i<blocos; ++i) {
			blocosRecebidos[i] = false;
		}		
	}

	virtual ~Peer();

	void run();
	std::vector<int> getBlocosLivres() const;
	void setBlocoTransferido(int bloco);
	void setOcupado(bool status);
	void setIsSeed(bool status);
    
private:
	bool isSeed;
	bool ocupado;
	boost::xtime tempoChegada;
	unsigned int rodada;
	unsigned int blocos;
    double taxaUpload;
	bool * blocosRecebidos;
};

#endif	/* PEER_H */

